package br.com.boreo.boreoapp_orcamento.controller;

import java.text.SimpleDateFormat;
import java.util.ArrayList;

import android.annotation.SuppressLint;
import android.content.Context;
import br.com.boreo.boreoapp_orcamento.dao.VendasDAO;
import br.com.boreo.boreoapp_orcamento.model.Vendas;

@SuppressLint("SimpleDateFormat")
public class VendasController {
	
	private VendasDAO vendasDAO;
	
	SimpleDateFormat formatadorData = new SimpleDateFormat("yyyy/MM/dd");
	SimpleDateFormat formatadorHora = new SimpleDateFormat("H:m:s");
	
	public VendasController(Context context) {
		vendasDAO = new VendasDAO(context);
	}

	public long inserir(int id_cliente, int id_formapag, String numero, String fatura_oper, String fatura_nro, double ent_futura, 
			double valor, String ped_cli, String regiao, String horario, String responsavel, String status, String duplicata, 
			String retorno_oper, String retorno_nrnf, String numero_retorno, String cod_movcxa, double valor_frete, double valor_comis,
			double vl_cli, String vinculo_zn, double cimento, double valor_custo, int id_usuario, int id_usuario_lib, int id_transp, int id_obra, 
			String obs, String negociacao, double icms_base, double icms_valor, double icms_base_st, double icms_valor_st, double vl_produtos, double vl_frete, 
			double vl_seguro, double vl_outras, double vl_ipi, double vl_baseipi, String nf_frete, int id_fornec, int id_nf_original, int id_nf_entrada, int id_venda_pai,
			int id_operacao, String cfop, String naturezaoper, String dest_nome, String dest_pessoa, String dest_doc, String dest_end, String dest_cidade, 
			String dest_bairro, String dest_cep, String dest_uf, String dest_ie, String dest_entrega, String dest_fone, String trans_frete, String trans_espec, 
			String trans_qtd, String tipo_es, String ajudante, int id_clidepend, String reserva_box,  String timestamp, int id_loja, int id_lojaori,
		    String emissao, String fatura_data, String data_prev, String data_saida,String dt_cancela, double vl_pis, double vl_cofins, String dest_nro,
		    String dest_compl, String prot_id, String chave, String status_nfe, String tipo_frete, int id_uf, int id_municip, String dest_mail, String entrega,
		    int id_transf, String coo, double vl_despadu, double vl_ii, int id_frete, double qtd_frete,  int sincronizado) {
		
		return vendasDAO.inserir(id_cliente, id_formapag, numero, fatura_oper, fatura_nro, ent_futura, valor, ped_cli, regiao, horario, responsavel, status,
				duplicata, retorno_oper, retorno_nrnf, numero_retorno, cod_movcxa, valor_frete, valor_comis, vl_cli, vinculo_zn, cimento, valor_custo, id_usuario,
				id_usuario_lib, id_transp, id_obra, obs, negociacao, icms_base, icms_valor, icms_base_st, icms_valor_st, vl_produtos, vl_frete, vl_seguro, vl_outras,
				vl_ipi, vl_baseipi, nf_frete, id_fornec, id_nf_original, id_nf_entrada, id_venda_pai, id_operacao, cfop, naturezaoper, dest_nome, dest_pessoa, dest_doc,
				dest_end, dest_cidade, dest_bairro, dest_cep, dest_uf, dest_ie, dest_entrega, dest_fone, trans_frete, trans_espec, trans_qtd, tipo_es, ajudante, id_clidepend,
				reserva_box, timestamp, id_loja, id_lojaori, emissao, fatura_data, data_prev, data_saida, dt_cancela, vl_pis, vl_cofins, dest_nro, dest_compl, prot_id, chave,
				status_nfe, tipo_frete, id_uf, id_municip, dest_mail, entrega, id_transf, coo, vl_despadu, vl_ii, id_frete, qtd_frete, sincronizado);
	}	

	public long inserirComId(int id, int id_cliente, int id_formapag, String numero, String fatura_oper, String fatura_nro, double ent_futura, 
			double valor, String ped_cli, String regiao, String horario, String responsavel, String status, String duplicata, 
			String retorno_oper, String retorno_nrnf, String numero_retorno, String cod_movcxa, double valor_frete, double valor_comis,
			double vl_cli, String vinculo_zn, double cimento, double valor_custo, int id_usuario, int id_usuario_lib, int id_transp, int id_obra, 
			String obs, String negociacao, double icms_base, double icms_valor, double icms_base_st, double icms_valor_st, double vl_produtos, double vl_frete, 
			double vl_seguro, double vl_outras, double vl_ipi, double vl_baseipi, String nf_frete, int id_fornec, int id_nf_original, int id_nf_entrada, int id_venda_pai,
			int id_operacao, String cfop, String naturezaoper, String dest_nome, String dest_pessoa, String dest_doc, String dest_end, String dest_cidade, 
			String dest_bairro, String dest_cep, String dest_uf, String dest_ie, String dest_entrega, String dest_fone, String trans_frete, String trans_espec, 
			String trans_qtd, String tipo_es, String ajudante, int id_clidepend, String reserva_box,  String timestamp, int id_loja, int id_lojaori,
		    String emissao, String fatura_data, String data_prev, String data_saida,String dt_cancela, double vl_pis, double vl_cofins, String dest_nro,
		    String dest_compl, String prot_id, String chave, String status_nfe, String tipo_frete, int id_uf, int id_municip, String dest_mail, String entrega,
		    int id_transf, String coo, double vl_despadu, double vl_ii, int id_frete, double qtd_frete,  int sincronizado) {
		
		return vendasDAO.inserirComId(id, id_cliente, id_formapag, numero, fatura_oper, fatura_nro, ent_futura, valor, ped_cli, regiao, horario, responsavel, status,
				duplicata, retorno_oper, retorno_nrnf, numero_retorno, cod_movcxa, valor_frete, valor_comis, vl_cli, vinculo_zn, cimento, valor_custo, id_usuario,
				id_usuario_lib, id_transp, id_obra, obs, negociacao, icms_base, icms_valor, icms_base_st, icms_valor_st, vl_produtos, vl_frete, vl_seguro, vl_outras,
				vl_ipi, vl_baseipi, nf_frete, id_fornec, id_nf_original, id_nf_entrada, id_venda_pai, id_operacao, cfop, naturezaoper, dest_nome, dest_pessoa, dest_doc,
				dest_end, dest_cidade, dest_bairro, dest_cep, dest_uf, dest_ie, dest_entrega, dest_fone, trans_frete, trans_espec, trans_qtd, tipo_es, ajudante, id_clidepend,
				reserva_box, timestamp, id_loja, id_lojaori, emissao, fatura_data, data_prev, data_saida, dt_cancela, vl_pis, vl_cofins, dest_nro, dest_compl, prot_id, chave,
				status_nfe, tipo_frete, id_uf, id_municip, dest_mail, entrega, id_transf, coo, vl_despadu, vl_ii, id_frete, qtd_frete, sincronizado);
	}
	
	public long alterar(int id, int id_cliente, int id_formapag, String numero, String fatura_oper, String fatura_nro, double ent_futura, 
			double valor, String ped_cli, String regiao, String horario, String responsavel, String status, String duplicata, 
			String retorno_oper, String retorno_nrnf, String numero_retorno, String cod_movcxa, double valor_frete, double valor_comis,
			double vl_cli, String vinculo_zn, double cimento, double valor_custo, int id_usuario, int id_usuario_lib, int id_transp, int id_obra, 
			String obs, String negociacao, double icms_base, double icms_valor, double icms_base_st, double icms_valor_st, double vl_produtos, double vl_frete, 
			double vl_seguro, double vl_outras, double vl_ipi, double vl_baseipi, String nf_frete, int id_fornec, int id_nf_original, int id_nf_entrada, int id_venda_pai,
			int id_operacao, String cfop, String naturezaoper, String dest_nome, String dest_pessoa, String dest_doc, String dest_end, String dest_cidade, 
			String dest_bairro, String dest_cep, String dest_uf, String dest_ie, String dest_entrega, String dest_fone, String trans_frete, String trans_espec, 
			String trans_qtd, String tipo_es, String ajudante, int id_clidepend, String reserva_box,  String timestamp, int id_loja, int id_lojaori,
		    String emissao, String fatura_data, String data_prev, String data_saida,String dt_cancela, double vl_pis, double vl_cofins, String dest_nro,
		    String dest_compl, String prot_id, String chave, String status_nfe, String tipo_frete, int id_uf, int id_municip, String dest_mail, String entrega,
		    int id_transf, String coo, double vl_despadu, double vl_ii, int id_frete, double qtd_frete,  int sincronizado) {
		
		return vendasDAO.alterar(id, id_cliente, id_formapag, numero, fatura_oper, fatura_nro, ent_futura, valor, ped_cli, regiao, horario, responsavel, status,
				duplicata, retorno_oper, retorno_nrnf, numero_retorno, cod_movcxa, valor_frete, valor_comis, vl_cli, vinculo_zn, cimento, valor_custo, id_usuario,
				id_usuario_lib, id_transp, id_obra, obs, negociacao, icms_base, icms_valor, icms_base_st, icms_valor_st, vl_produtos, vl_frete, vl_seguro, vl_outras,
				vl_ipi, vl_baseipi, nf_frete, id_fornec, id_nf_original, id_nf_entrada, id_venda_pai, id_operacao, cfop, naturezaoper, dest_nome, dest_pessoa, dest_doc,
				dest_end, dest_cidade, dest_bairro, dest_cep, dest_uf, dest_ie, dest_entrega, dest_fone, trans_frete, trans_espec, trans_qtd, tipo_es, ajudante, id_clidepend,
				reserva_box, timestamp, id_loja, id_lojaori, emissao, fatura_data, data_prev, data_saida, dt_cancela, vl_pis, vl_cofins, dest_nro, dest_compl, prot_id, chave,
				status_nfe, tipo_frete, id_uf, id_municip, dest_mail, entrega, id_transf, coo, vl_despadu, vl_ii, id_frete, qtd_frete, sincronizado);
	}
	
	public ArrayList<Vendas> selectVendas(){
		return vendasDAO.selectVendas();
	}

	public ArrayList<Vendas> selectVendasPorCliente(String campoPesquisa, int sincronizado) {
		return vendasDAO.selectVendasPorCliente(campoPesquisa, sincronizado);
	}
	
	public ArrayList<Vendas> selectVendasPorId(int id_venda) {
		return vendasDAO.selectVendasPorId(id_venda);
	}
	
	public ArrayList<Vendas> selectultimaVenda() {
		return vendasDAO.ultimaVenda();
	}
	
	public ArrayList<Vendas> selectVendasNaoSincronizados() {
		return vendasDAO.selectVendasNaoSincronizados();
	}

	public ArrayList<Vendas> selectVendasSincronizados() {
		return vendasDAO.selectVendasSincronizados();
	}
	
	public ArrayList<Vendas> ultimasVendas(int sincronizado){
		return vendasDAO.ultimasVendas(sincronizado);
	}

	public void excluirTodasVendas() {
		vendasDAO.excluirTodasVendas();
	}
	
	public void excluirVendaPorId(int id_venda) {
		vendasDAO.excluirVendaPorId(id_venda);
	}

	public String mudarParaSincronizada(int id_venda) {
		return vendasDAO.mudarParaSincronizada(id_venda);
	}


}
